Что такое Big O нотация?
Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.
Доминирующие операции
Способ, которым мы определяем Big O алгоритмов, заключается в том, чтобы посмотреть на худшую производительность в его доминирующих операциях.
Постоянное время — O(1)
func constantTime(_ n: Int) -> Int { let result = n * n return result }
Алгоритмы, без цикла(например: for-in) или алгоритмы которые просто возвращают результат какого-то простого вычисления, имеют «постоянное время» или «O(1)». Это означает, что эти операции очень быстрые.
Линейное время — O(n)
func linearTime(_ A: [Int]) -> Int { for i in 0..<A.count { if A[i] == 0 { return 0 } } return 1 }
Как только производительность алгоритма становится зависимой от размера